<h2>DESCRIPTION</h2>

The <em>d.rast.edit</em> program allows users to interactively
edit cell category values in a raster map layer displayed to the
graphics monitor using a mouse cursor.

<h3>Overview window</h3>

An overview window shows the entire map with a red box showing the current
editing region. The edit window shows the cells within the selected area.
Click on a new spot on the overview window to move the editing area.

<h3>Raster cell editing</h3>

Cell editing is done using the mouse cursor to indicate the cell(s) on
the displayed raster map that are to be edited.
<p>
To change the value of a cell put the new value to use in the "New value"
box at the bottom left of the edit window. A value of "*" indicates a
NULL value should be used.
<p>
<b>Important:</b> the new value in the "New value" box must be confirmed
with ENTER, otherwise it is not yet active.

<h3>Saving the edited map</h3>

To save the edited map, the "File" menu contains the entry <b>Save</b>.
To leave <em>d.rast.edit</em>, use <b>Exit</b> in the menu.


<h3>Map pan with arrow keys</h3>

The map can be shifted using the arrow keys on the keyboard.

<!-- currently broken, see #
<h3>Arrows</h3>

This function is available for users editing aspect maps.  The
<em><a href="d.rast.arrow.html">d.rast.arrow</a></em> program is
called, which draws arrows over the displayed
cells to indicate the downslope direction of the cell.
You can set the aspect map to use on the command line.
Aspect maps are expected to be in regular "GRASS" format, as produced by
<em><a href="r.slope.aspect.html">r.slope.aspect</a></em>; i.e. degrees
counter-clockwise from east.
-->

<h2>NOTES</h2>

There is no "undo" command nor way to exit edit mode without saving
changes to the output map.
<p>
<!-- MASK behaviour to be verified -->
Any MASK in place will be respected when writing the new raster map layer,
including any edits to the MASKed areas.

<h3>Geographic Region Concerns</h3>

<!-- region behaviour to be verified -->
<em>d.rast.edit</em> reads the region definition for the raster map layer
being edited from its internal cell header file. The new, edited copy of
the raster layer will be created with the same resolution and region
dimensions.
<p>The primary bane of the <em>d.rast.edit</em> program involves large map
layers with lots of rows and columns) and/or slow computers,
since the program must read and write raster map layers row by row for
the full size of the map layer as dictated by its region size and resolution.
(The current region settings of north, south, east, and west
will not limit the size of the edited copy of the map layer,
since by use of the overview selection these values may change several
times during the editing session).

<h2>EXAMPLE</h2>

Editing raster values in a LiDAR DEM, North Carolina sample data:

<div class="code"><pre>
g.region raster=elev_lid792_1m -p

# pan to area of interest and edit raster cells (I used "102" as value to modifiy cells
# Use:  File > Save to save
# then: File > Exit
d.rast.edit input=elev_lid792_1m output=elev_lid792_1m_modified

# comparison of raster statistics
# original stats, note the min value
r.univar -g elev_lid792_1m

# modified map stats, note the min value
r.univar -g elev_lid792_1m_modified
</pre></div>

<div align="center" style="margin: 10px">
<a href="d_rast_edit.png">
<img src="d_rast_edit.png" width="600" height="281" alt="d.rast.edit example" border="0">
</a><br>
<i>Figure: Editing of pixels in an elevation raster map using d.rast.edit</i>
</div>

<h2>TODO</h2>

<em>d.rast.edit</em> should not create a new raster map layer if
the user makes no cell edits while running the program and leaving it
without saving.
<p>

It would be nice to incorporate a scrollable version of <em>
<a href="d.legend.html">d.legend</a>
</em>
(such that one could see a label legend for files with many categories on
a standard size sub-frame).  It would be even nicer to be able
to select the category values from a graphical legend when editing
cell values (thereby saving a trip to the text frame to type in the
new value).

<p>Perhaps method(s) for multiple  or mass cell edits would be useful.
This could be done by providing modes in which the user may:
<ol>
<li> edit a block of cells to a given value by drawing a box;</li>
<li> be able to choose a given value which is automatically used as
the new value on each cell chosen until a different value is desired.</li>
</ol>

<p>There is no user-interrupt handling. This could leave files in .tmp
or (rarely) result in half-baked raster maps.  The original file
would survive unscathed by an interrupt at most any point in execution.
Beware of exiting the program
by means other than using <em>exit</em> on the <em>Main Menu</em>.


<h2>SEE ALSO</h2>

<em>
<a href="d.rast.arrow.html">d.rast.arrow</a>,
<a href="d.rast.num.html">d.rast.num</a>, 
<a href="wxGUI.rdigit.html">wxGUI.rdigit</a>
</em>

<h2>AUTHOR</h2>

Tcl/Tk (2007) and wxPython versions (2008): Glynn Clements<br>
<br>
Replaces Xdriver version in C by Chris Rewerts, April 1991,
Agricultural Engineering, Purdue University

<!--
<p>
<i>Last changed: $Date$</i>
-->
